1. Field
This invention relates generally to real time, simultaneous multiple data stream input within computer applications, and more specifically to systems and methods for the simultaneous manipulation of independent user-interface objects within a computer and/or across a network.
2. Related Art
Various technologies exist for viewing and controlling user-interface elements for application sharing, control or collaboration. A common example of such an application being network collaboration and presentation technologies. Conventional network collaboration and presentation technologies rely on what is called “screen sharing”, which allows remotely connected users using one or more computing devices to view the contents of the screen of a single host computing device in real time. Some of these collaboration, remote desktop, or “webinar” tools will allow a single local or remote user to take control of the user interface on the computer which is sharing its screen, while others allow switching the transmitted display to the user-interface (UI) of another, single, connected host computing device. However, none allow simultaneous manipulation of user-interface elements by multiple users on multiple nodes.
Such methods have several problems. First, because an image of an entire screen is being transmitted to the remote nodes from a host, data transmission rates from the host to the client devices are comparatively high. If the available network bandwidth between nodes is insufficient for such large amounts of data, lag in the display image, and dropped or distorted images, can create severe usability problems, and a degraded user experience. Further, such large amounts of data can degrade the processing ability of both the host and the client devices, reducing the ability to perform other tasks. Another problem with such technology is that only one user is in control at any given time. If another user needs to control the UI on the host device, control of the host UI must be relinquished exclusively to the client. Likewise, in traditional screen sharing applications, if a client wishes to become a host, showing what is on their screen, view of the original host and control by the original host's user would be lost.
Accordingly, there is need for a system and method that allows for the remote manipulation of user interface objects on a remote computer without the need to transmit large amounts of data, as does screen sharing, and is capable of manipulating multiple UI elements across a plurality of nodes. Further, for true, simultaneous, collaboration, users need to be able to act simultaneously and freely with respect to UI elements.